CAMFuzz: Explainable Fuzzing with Local Interpretation

نویسندگان

چکیده

Abstract Grey-box fuzzing techniques have been widely used in software bug finding. In general, there are many decisions to make the process, including which code block target program should be explored first, bytes of an input seed mutated reach block, and how mutate chosen bytes. However, existing solutions usually rely on random exploration or certain heuristics choose where fuzz, limits efficiency fuzzing. this paper, we propose a novel solution CAMFuzz guide process with explainable artificial intelligence (XAI). First, dynamic weight adjustment algorithm, considers both difficulty reaching number unvisited blocks nearby, find worthy explore first. Second, utilize local interpretation technique, i.e., class activation mapping (CAM), recognize part given block. Therefore, can distinguish is more important positions file order achieve better coverage finding efficiency. Third, further help fuzzer increase efficiency, leverage lightweight static analysis identify magic values. We implement prototype evaluate it 13 real-world programs (including 11 open source targets, 2 closed-source commercial products Microsoft component Hancom Office) Results show that outperforms state-of-the-art fuzzers To detail, average achieves 2.07 $$\times$$ × bugs 1.17 improvements. total, found 19 previously unknown vulnerabilities, 6 assigned by CVE so far.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Local Outlier Detection with Interpretation

Outlier detection aims at searching for a small set of objects that are inconsistent or considerably deviating from other objects in a dataset. Existing research focuses on outlier identification while omitting the equally important problem of outlier interpretation. This paper presents a novel method named LODI to address both problems at the same time. In LODI, we develop an approach that exp...

متن کامل

Fuzzing with Code Fragments (-2)

Fuzz testing is an automated technique providing random data as input to a software system in the hope to expose a vulnerability. In order to be effective, the fuzzed input must be common enough to pass elementary consistency checks; a JavaScript interpreter, for instance, would only accept a semantically valid program. On the other hand, the fuzzed input must be uncommon enough to trigger exce...

متن کامل

Explainable Planning

As AI is increasingly being adopted into application solutions, the challenge of supporting interaction with humans is becoming more apparent. Partly this is to support integrated working styles, in which humans and intelligent systems cooperate in problem-solving, but also it is a necessary step in the process of building trust as humans migrate greater responsibility to such systems. The chal...

متن کامل

Improving Fuzzing with Symbolic Execution

Fuzzing is a great technique to, for example, discover and reproduce software system vulnerabilities. However, there exist problems with finding test inputs for complex checks (e.g., string equality checks). A recent approach proposes to combine fuzzing techniques with symbolic execution to effectively tackle this problem [1]. The student should examine and discuss the approach given in the pap...

متن کامل

Distributed evolutionary fuzzing with Evofuzz

This paper describes the design of a tool (called Evofuzz) that implements the technique of evolutionary (or coverage-guided) fuzzing in a scalable, distributed manner. The architecture, design-choices and implementation specifics of this tool are examined, explained and criticized. After outlining possible improvements and future work that is not yet completed, the paper finishes by presenting...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Cybersecurity

سال: 2022

ISSN: ['2523-3246']

DOI: https://doi.org/10.1186/s42400-022-00116-x